import java.util.*;


public class Jugador {
	
	private String nombre;
	
	/**
	 * @uml.property  name="Dinero"
	 */
	private int dinero;

	/**
	 * @uml.property  name="Edificios"
	 */
	
	
	private Set<Edificios> edificios;	//Es un Set porque una persona no peude tener 2 edificios del mismo tipo

	private List<Plantacion> plantaciones;

	/**
	 * @uml.property  name="ColonosDisp"
	 */
	private int colonosDisp;

	/**
	 * @uml.property  name="PV"
	 */
	private int pv;

        private Map<String,Integer> mercancias;
        
	public Jugador(String nombre){
			this.nombre = nombre;
	}
	

    //Los Set no admiten elementos repetidos
    public void creaEdificios(){
        edificios=new HashSet<Edificios>();	
    }

    public Set<Edificios> getEdificios(){
        return edificios;
    }
    //public Edificios getEdificio(Set edificios){
    //	edificios.
    //}
    public List<Plantacion> getPlantaciones()
    {
        return plantaciones;
    }
    public Map<String, Integer> getMercancias()
    {
        return mercancias;
    }
    public void addEdificio(Edificios ed){
    	edificios.add(ed);
    }
    

    public int sizeOfEdificios(){
    	return edificios.size();
    }
    
    public void creaPlantaciones(){
        plantaciones=new LinkedList<Plantacion>();
    }
    
    public void creaMercancias(){
          mercancias= new HashMap<String,Integer>();
          mercancias.put("Maiz", 0);
          mercancias.put("Indigo", 0);
          mercancias.put("Cafe", 0);
          mercancias.put("Tabaco", 0);
          mercancias.put("Azucar", 0);
        }
    
    
    public String getnombre(){
        return nombre;
    
    }
    
    
    /**
     * Getter of the property <tt>Dinero</tt>
     * @return  Returns the dinero.
     * @uml.property  name="Dinero"
    
     
     */
    public int getDinero() {
        return dinero;
    }

    /**
     * Setter of the property <tt>Dinero</tt>
     * @param Dinero  The dinero to set.
     * @uml.property  name="Dinero"
     */
    public void setDinero(int dinero) {
        this.dinero = dinero;
    }

    /**
     * Getter of the property <tt>ColonosDisp</tt>
     * @return  Returns the colonosDisp.
     * @uml.property  name="ColonosDisp"
     */
    public int getColonosDisp() {
        return colonosDisp;
    }

    /**
     * Setter of the property <tt>ColonosDisp</tt>
     * @param ColonosDisp  The colonosDisp to set.
     * @uml.property  name="ColonosDisp"
     */
    public void setColonosDisp(int colonosDisp) {
        this.colonosDisp = colonosDisp;
    }

    /**
     * Getter of the property <tt>PV</tt>
     * @return  Returns the pv.
     * @uml.property  name="PV"
     */
    public int getPV() {
        return pv;
    }

    /**
     * Setter of the property <tt>PV</tt>
     * @param PV  The pv to set.
     * @uml.property  name="PV"
     */
    public void setPV(int pv) {
        this.pv = pv;
    }
    public void creaDCP(){
        dinero=3;
        colonosDisp=0;
        pv=0;
    }

    public void anadirDinero(int din){
        dinero=dinero+din;
    }

      public void anadirColonosDisp(int col){
        colonosDisp=colonosDisp+col;
    }    
      
    public String toString (){
        String s ="Jugador\n Nombre: "+nombre+" Dinero: "+dinero+"\n Edificios: "+edificios.toString()+"\n Plantaciones: "+plantaciones.toString()+"\n Número de colonos disponibles: "+colonosDisp;
        return s;
    }
    public void addPlantacion(Plantacion p){
    	plantaciones.add(p);
    	}
    public void anadirpv(int a){
        pv=pv+a;
    }
    public void quitarDinero(int a){
        dinero=dinero-a;
    }
    public void anadirMercancias(Integer m,Integer i,Integer c,Integer t,Integer a){
        mercancias.put("Maiz",mercancias.get("Maiz")+m);
        mercancias.put("Indigo",mercancias.get("Indigo")+i);
        mercancias.put("Cafe", mercancias.get("Cafe")+c);
        mercancias.put("Tabaco", mercancias.get("Tabaco")+t);
        mercancias.put("Azucar", mercancias.get("Azucar")+a);
    }
    
}
